Many communication systems can be generally described as including a first unit (transmitter) which is to send a message to a second unit (a receiver). Frequently, the transmitter includes an encoder for using the message to generate a signal which is actually transmitted, and the receiver includes a corresponding decoder for reconstructing the message from the signal.
Recently turbo codes have become widely used in such communication systems. FIG. 4 shows schematically the structure of an encoder 20 used to produce a turbo code signal with a coding rate (i.e. the ratio of the number of bits of the message input to the encoder to the number of bits output as the signal) of ⅓. A message enters the encoder 20 from the left of FIG. 4 as a bit stream. Each input bit is output as corresponding “systematic bit” S. The input bit stream is also transmitted to a first convolutional encoder 23. The input bit stream is also transmitted to an interleaver 21, and from there to a second convolutional encoder 25. For each “systematic bit” S output by the encoder, the first convolutional encoder 23 generates a corresponding first parity bit P1, and the second convolutional encoder 25 generates a corresponding second parity bit P2.
There are various ways to modify the encoder 20 of FIG. 4 to get a coding rate of ¼. One is provide an extra interleaver receiving the output of interleaver 21, and an extra convolutional encoder receiving the output of the extra interleaver. Another method is to generate ¼ Turbo codes from ⅓ Turbo codes by rate matching (bits repetition). A third method is to generate ¼ Turbo codes from ⅕ Turbo codes by rate matching (bits puncturing). Note in this case, two convolutional encoders with coding rate of ½ are used to obtain the ⅕ Turbo codes.
The receiver reconstructs the message from this message using a decoder which operates, in a well known fashion, using a forward error correction (FEC) algorithm.
Such communication systems frequently have to operate at multiple coding rates. To do so they frequently employ “rate matching”. That is, a rate matching unit in the transmitter processes the output of the encoder to convert its coding rate to a second coding rate. In the case that the second coding rate is higher than the encoder's coding rate, the rate matching is performed by “puncturing” the encoder output (i.e. omitting bits of it). In the case that the second coding rate is lower than the encoder's coding rate, “repetition” is performed (i.e. the encoder output is modified so that one or more of its bits are repeated). The output of the rate dematching unit is then transmitted by a physical signal transmission unit (such as a radio transmission unit in the case that the communication is by radio) to the receiver as a signal (e.g. data packet).
For many communication systems, in the case that the receiver is unable to reconstruct the message from the signal it receives (due to noise) the receiver is able to cause the transmitter to transmit a further signal (also derived from the message) to the receiver. For example, in the case that a certain message not correctly reconstructed, the receiver may send a NACK signal to the transmitter, which responds by transmitting the further signal. As discussed below, the further signal may be identical to the further signal, or may be different. In some systems, this loop can be performed until the receiver correctly reconstructs the message. In other systems, there are a maximum number of transmissions.
To meet the demand for the wideband and high data rate multimedia communications, several advanced technologies have been proposed to achieve high peak data rate. Hybrid automatic repeat request (HARQ) communication is one of them. HARQ is defined as any combined ARQ and forward error correction code (FEC) method in which the receiver stores failed decoding attempts (i.e. received signals which the decoder failed to decode) for future joint decoding. HARQ is an implicit link adaptation technique.
There are two major methods for implementing HARQ—Chase combining and Incremental Redundancy (IR). Chase combining involves the retransmission by the transmitter of the same coded data packet. The decoder at the receiver combines these multiple copies of the transmitted packet weighted by the received signal to noise ratio (SNR). Diversity gain is thus obtained. Incremental redundancy is another implementation of the HARQ technique wherein instead of sending simple repeats of the entire coded packet, additional redundant information is incrementally transmitted if the decoding fails on the first attempt. In this case, there are several different transmission versions of the coded packet.
In general, IR can only provide significant gain for high coding rate (greater than or equal to 0.5) and high order modulation (greater than or equal to 16) compared with Chase combining. Meanwhile, IR is much more complex in terms of memory, processing, and signalling requirements.
Motorola has proposed a HARQ scheme based on block interleaving and bit priority mapping (BMP) [1]. This scheme is quite complex as it employs block interleaving and BMP to generate different IR redundancy versions. Ericsson introduced a HARQ scheme based on rate matching technique [2]. It uses two stages of rate matching to generate IR redundancy versions and only two IR redundancy versions can be generated. The frame error rate (FER) performances of these two methods are quite similar and no significant gain is observed compared with that of Chase combining [3]. In [4], Siemens proposed a HARQ scheme by means of rate matching and symbol mapping based on priority (SMP). This method provides 0.9 dB gain over Chase combining for 16 QAM with coding rate of ½. For 16 QAM with coding rate of ¾, the corresponding gain is 1.7 dB. All these gains are measured at FER with 0.01 in Additive Wideband Gaussian Noise (AWGN) channel.
As mentioned previously, the challenges of HARQ implementation for communication systems using Turbo codes are a) how to keep the scheme as simple as possible; b) how to achieve as much gain as possible. The method from Motorola is very complex and provides marginal gain over Chase combining. The method from Ericsson is simple but there is no significant gain over Chase combining. The method from Siemens can provide some gain over Chase combining but it is also complex.